明文儲存密碼原理與檢測方法 - 以OO壽司為例


Posted by 資安543 on 2021-11-28

明文儲存密碼

什麼是明文密碼

原來大公司也曾經使用明文密碼

Facebook曾經明文儲存密碼
在2019年Facebook就被證實曾經使用明文儲存密碼,數百萬用戶的密碼已明文儲存長達7年,可見這問題不只是只有小公司的網站才可能發生,我們以"明文"當關鍵字搜尋一下台灣的漏洞通報平台HITCON Zeroday,就可以列出三頁大概20個網站(曾經)可能存在明文密碼的風險,其中還包含了和運租車台灣博碩士論文加值系統勤業眾信聯合會計師事務所等較為知名的網站或企業。

明文密碼是什麼?

大部分註冊網站時都會要求你輸入帳號(或E-MAIL當帳號),以及一組密碼,假如你把Sec543P@55w0rd當成密碼,而網站未經適當處理,直接把Sec543P@55w0rd直接存入資料庫,就可以稱為明文儲存密碼。
明文密碼

明文儲存密碼有什麼風險呢?

假設駭客使用某種攻擊方法取得資料庫裡面的資料,或者是網站公司的工程師監守自盜,那麼他就擁有你的密碼了,當你使用密碼的習慣又不好,在多個網站都使用同一組密碼,駭客就可以使用撞庫攻擊(Credential-Stuffing),也就是用這組帳號密碼去嘗試登入你的網路銀行或者Google、Facebook等較有利用價值的網站來嘗試偷錢或者詐騙你的朋友
撞庫

最近期貨商也可能遭受撞庫攻擊!
期貨商撞庫

應該怎麼處理密碼?

雜湊函數(Hash function)

那麼應該怎麼處理是比較好的方法呢?目前普遍使用的方法為雜湊函數(注意雜湊與加密或編碼有所差異),雜湊是將資料經過一連串的運算後最後取得一段固定長度的值,以SHA1雜湊函式為例,我們使用 http://www.sha1-online.com/ 來進行運算,可以取得c0f397327b80a995b844df666a59982bcff83a37的雜湊值,儲存雜湊值而非Sec543P@55w0rd是比較好的方法
SHA1雜湊

雜湊有個很重要的特色是從Sec543P@55w0rd計算出對應SHA1雜湊值c0f397327b80a995b844df666a59982bcff83a37很快很容易,但如果要從雜湊值反推出Sec543P@55w0rd則"普遍"相當困難,因此即使工程師監守自盜或者資料庫被偷走都還會遇到雜湊破解的難關,有機會我們再來討論破解雜湊與反破解雜湊的技術!
雜湊函數

怎麼判斷是否網站使用明文密碼?

判斷網站是否為明文密碼最簡單的方法當然是直接觀看資料庫,但我們身為一般使用者不可能作得到,但有其他簡單的判斷方法,只要在註冊完成之後,你有辦法直接看到原本設定的密碼都極有可能使用明文儲存密碼,以下我們就來看看有哪些方法可以知道

1. 忘記密碼

有個簡單的方法就是使用網站的忘記密碼功能,假如使用忘記密碼之後網站直接顯示或者E-Mail告訴你就很有可能明文儲存密碼,我們以OO壽司店為例:
※情境以已經於OO壽司店註冊過資料

  1. 進入網站點選忘記密碼功能
    忘記密碼

  2. 輸入原本註冊的E-Mail
    輸入E-Mail

  3. 到信箱查看是否告知你原本註冊的密碼,結果真的有!
    查看信箱

我們可以信件中發現OO壽司告訴我們原本設定的密碼了,而前面有提到你假如資料庫只是儲存雜湊值而非明文密碼,只使用雜湊值是相當困難再取得原本的密碼的,因此我們可以合理的推論OO壽司很有可能儲存明文密碼,因此他才能如此輕易地告訴你原本設定的密碼

我4氦克
原來當駭客這麼簡單(誤

假如是註冊當下馬上寄出密碼給你留底的未必是資料庫明文儲存密碼,有可能是先寄給你再進行雜湊儲存,如果以註冊馬上發給你的信來判斷可能準確度不高。

2.修改密碼/資料

另外一個方法在10年前可能比較常見,現在已經很少看到這樣的網頁問題了,在修改密碼或資料的頁面,有的會要你輸入密碼,但在密碼欄位就先幫你填好你原本的密碼,因太少見所以我自己寫了一個範例:

  1. 在有密碼的頁面,且密碼欄位不為空,按下鍵盤的F12呼叫開發者工具
  2. 工具列選擇Elements
  3. 點下最左邊的游標小圖示
    修改密碼1

  4. 點選輸入密碼的欄位

  5. 下方開發者工具的html程式碼應該會反白剛才你點選的密碼欄位,可以從value值看到是否存在明文密碼
    修改密碼2

在此虛構的範例中我們可以得知網頁的確在欄位中帶入了明文密碼Sec543P@55w0rd,代表也極有可能存在明文儲存密碼的風險。

以上兩個範例雖然都是極有可能使用明文密碼,但非絕對是使用明文密碼,也有可能使用我沒想到的密碼保護方法。

結論

在這個幾乎什麼事情都可以在網路上完成的時代,我們註冊一個又一個的帳號與密碼,很難保證每個網站都不被入侵或者竊取資料庫,假如遇上使用明文密碼的網站我相信也很容易出現其他嚴重的弱點,可以使用以上的方法來觀察與評估,一旦發現就可以盡量避免使用這樣的網站,也盡量每個網站都使用不同的密碼或搭配密碼管理器進行密碼管理,即使萬一不幸外洩了密碼也不擔心被撞庫。

你也有遇過使用明文密碼的網站嗎,或者知道更多知道明文密碼的方法嗎,歡迎在Facebook上我的粉絲專頁一起討論 :)


#Security #資安 #資安543 #明文密碼 #PlaintextPassword









Related Posts

jest test 測試要等待的東西

jest test 測試要等待的東西

Secure Apache Using Certbot with Let's Encrypt on Ubuntu 20.04

Secure Apache Using Certbot with Let's Encrypt on Ubuntu 20.04

The Zen Programmer 程式設計之禪書摘

The Zen Programmer 程式設計之禪書摘


Comments